From: José Relvas Date: Thu, 11 Jul 2024 19:31:11 +0000 (+0100) Subject: screencastService: Add gstreamer pipeline for h264 low-power hw encode X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~226^2^2~18 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=44beaa0e1d66ae3950785eaa10d2400d37ddb1c0;p=gnome-shell.git screencastService: Add gstreamer pipeline for h264 low-power hw encode VA-API low-power encoder profiles (such as vah264lpenc) reduce power consumption by relying entirely on fixed-function hardware blocks. Use vah264lpenc over vah264enc by default, in order to save on energy and 3D engine capacity. Signed-off-by: José Relvas Part-of: --- diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js index c01aa830f..e82eae399 100644 --- a/js/dbusServices/screencast/screencastService.js +++ b/js/dbusServices/screencast/screencastService.js @@ -31,6 +31,17 @@ const DEFAULT_DRAW_CURSOR = true; const PIPELINE_BLOCKLIST_FILENAME = 'gnome-shell-screencast-pipeline-blocklist'; const PIPELINES = [ + { + id: 'hwenc-dmabuf-h264-vaapi-lp', + fileExtension: 'mp4', + pipelineString: + 'capsfilter caps=video/x-raw(memory:DMABuf),format=DMA_DRM,max-framerate=%F/1 ! \ + vapostproc ! \ + vah264lpenc ! \ + queue ! \ + h264parse ! \ + mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise', + }, { id: 'hwenc-dmabuf-h264-vaapi', fileExtension: 'mp4',